package com.rzdata.poct.system.domain.business.bo;

import com.rzdata.poct.common.core.domain.BaseEntity;
import com.rzdata.poct.common.core.validate.AddGroup;
import com.rzdata.poct.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;


/**
 * POCT检测设备业务对象 poct_instrument
 *
 * @author ruoyi
 * @date 2021-09-09
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("POCT检测设备业务对象")
public class PoctInstrumentBo extends BaseEntity {

    /**
     *
     */
    private Long id;

    /**
     * 设备编号
     */
    @NotBlank(message = "设备编号不能为空")
    @Size(min = 0, max = 200, message = "设备编号长度不能超过200个字符")
    @ApiModelProperty(value = "设备编号")
    private String instrumentNo;

    /**
     * 设备名称
     */
    @NotBlank(message = "设备名称不能为空")
    @Size(min = 0, max = 200, message = "设备名称长度不能超过200个字符")
    @ApiModelProperty(value = "设备名称")
    private String instrumentName;

    /**
     * 部门ID
     */
    @NotNull(message = "部门不能为空", groups = { AddGroup.class, EditGroup.class })
    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称")
    private String instrumentModel;

    /**
     * 生产厂商
     */
    @ApiModelProperty(value = "生产厂商")
    private String manufacturer;

    /**
     * 方法学
     */
    @ApiModelProperty(value = "方法学")
    private String methodology;

    /**
     * 注册信息
     */
    @ApiModelProperty(value = "注册信息")
    private String regInfo;

    /**
     * 设备图片
     */
    @ApiModelProperty(value = "设备图片")
    private String pic;

    /**
     * 管理者
     */
    @ApiModelProperty(value = "管理者")
    private String manager;

    /**
     * 责任人
     */
    @NotBlank(message = "责任人不能为空")
    @Size(min = 0, max = 20, message = "责任人长度不能超过20个字符")
    @ApiModelProperty(value = "责任人")
    private String personLiable;

    /**
     * 临床应用
     */
    @ApiModelProperty(value = "临床应用")
    private String dcf;

    /**
     * 仪器型号
     */
    @ApiModelProperty(value = "仪器型号")
    private String instrumentType;

    /**
     * 可检项目
     */
    @ApiModelProperty(value = "可检项目")
    private String checkProject;

    /**
     * 可检测样本
     */
    @ApiModelProperty(value = "可检测样本")
    private String checkSample;

    /**
     * 生产日期
     */
    @ApiModelProperty(value = "生产日期")
    private Date prodDate;

    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private Long projectId;

    /**
     * 样本id
     */
    @ApiModelProperty(value = "样本id")
    private Long sampleId;

    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小")
    private Integer pageSize;

    /**
     * 当前页数
     */
    @ApiModelProperty("当前页数")
    private Integer pageNum;

    /**
     * 排序列
     */
    @ApiModelProperty("排序列")
    private String orderByColumn;

    /**
     * 排序的方向desc或者asc
     */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;

}
